package com.zzb.listener;

import com.zzb.dao.UserDao;
import com.zzb.entity.MessageEntity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Map;

@Component
@Slf4j
public class MessageMQListener {
    @Resource
    UserDao userDao;
    @Resource
    MessageEntity messageEntity;


    @RabbitListener(queues = "zzb_message")//从哪些队列里取消息，可以写多个，写的是队列名。
//    @RabbitListener(queuesToDeclare = @Queue("zzb_user"))// 这个也可以，只是这个传的是Queue对象。
    public void userReceive(String message, @Payload String body, @Headers Map headers) {
        messageEntity.setReceiveTime(System.currentTimeMillis());
        String[] messages = message.split("--");
        messageEntity.setMessage(messages[0]);
        messageEntity.setCreateTime(Long.parseLong(messages[1]));
        userDao.addMessage(messageEntity);
        log.info("user收到消息，消息内容是: {}", message);
    }
    @RabbitListener(queues = "zzb_message1")//从哪些队列里取消息，可以写多个，写的是队列名。
//    @RabbitListener(queuesToDeclare = @Queue("zzb_user"))// 这个也可以，只是这个传的是Queue对象。
    public void userReceive1(String message, @Payload String body, @Headers Map headers) {
        messageEntity.setReceiveTime(System.currentTimeMillis());
        String[] messages = message.split("--");
        messageEntity.setMessage(messages[0]);
        messageEntity.setCreateTime(Long.parseLong(messages[1]));
        userDao.addMessage(messageEntity);
        log.info("user收到消息，消息内容是: {}", message);
    }
}
